/*     */ package dm.jdbc.driver;
/*     */ 
/*     */ import dm.jdbc.dbaccess.Const;
/*     */ import dm.jdbc.dbaccess.DBError;
/*     */ import dm.jdbc.desc.ParameterDesc;
/*     */ import java.sql.ParameterMetaData;
/*     */ import java.sql.SQLException;
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ public class DmdbParameterMetaData_bs
/*     */   extends DmdbDataTypeMetaData
/*     */   implements ParameterMetaData
/*     */ {
/*  27 */   DmdbInfo m_dbInfo = null;
/*     */   
/*  29 */   private boolean comOra = false;
/*     */   
/*     */   DmdbParameterMetaData_bs(DmdbPreparedStatement_bs pstmt, boolean comOra) {
/*  32 */     this.m_dbInfo = pstmt.getDmdbInfo();
/*  33 */     this.comOra = comOra;
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public int getParameterCount()
/*     */     throws SQLException
/*     */   {
/*  47 */     return this.m_dbInfo.getParameterCount();
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public int isNullable(int param)
/*     */     throws SQLException
/*     */   {
/*  64 */     checkIndex(param);
/*     */     
/*  66 */     boolean nullable = this.m_dbInfo.getParamsInfo()[(param - 1)].getNullable();
/*  67 */     return nullable ? this.parameterNullable : this.parameterNoNulls;
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*  74 */   int parameterNoNulls = 0;
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*  80 */   int parameterNullable = 1;
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*  85 */   int parameterNullableUnknown = 2;
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public boolean isSigned(int param)
/*     */     throws SQLException
/*     */   {
/*  99 */     int jsqlType = getParameterType(param);
/* 100 */     return signed(jsqlType);
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public int getPrecision(int param)
/*     */     throws SQLException
/*     */   {
/* 114 */     checkIndex(param);
/*     */     
/* 116 */     return this.m_dbInfo.getParamsInfo()[(param - 1)].getPrec();
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public int getScale(int param)
/*     */     throws SQLException
/*     */   {
/* 131 */     checkIndex(param);
/*     */     
/* 133 */     return this.m_dbInfo.getParamsInfo()[(param - 1)].getScale();
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public int getParameterType(int param)
/*     */     throws SQLException
/*     */   {
/* 148 */     if (Const.TRACE_LEVEL > 0)
/* 149 */       DmdbLog.trace(this, "getParameterType(int)", "paramIndex = " + 
/* 150 */         param);
/* 151 */     checkIndex(param);
/*     */     
/* 153 */     int dType = this.m_dbInfo.getParamsInfo()[(param - 1)].getDType();
/* 154 */     String typeName = this.m_dbInfo.getParamsInfo()[(param - 1)].getTypeName();
/*     */     
/* 156 */     int type = DmdbType.dtypeToSqlType(dType, typeName);
/* 157 */     if ((this.comOra) && (DmdbType.isNUMERICtype(type)))
/*     */     {
/* 159 */       return 2;
/*     */     }
/*     */     
/*     */ 
/* 163 */     return type;
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public String getParameterTypeName(int param)
/*     */     throws SQLException
/*     */   {
/* 179 */     if (Const.TRACE_LEVEL > 0)
/* 180 */       DmdbLog.trace(this, "getParameterTypeName(int)", "paramIndex = " + 
/* 181 */         param);
/* 182 */     checkIndex(param);
/* 183 */     String typeName = this.m_dbInfo.getParamsInfo()[(param - 1)].getTypeName();
/*     */     
/* 185 */     if ((typeName == null) || (typeName.equals(""))) {
/* 186 */       typeName = "VARCHAR";
/*     */     }
/* 188 */     return typeName;
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public String getParameterClassName(int param)
/*     */     throws SQLException
/*     */   {
/* 208 */     int dataType = getParameterType(param);
/* 209 */     return getClassName(dataType);
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/* 216 */   int parameterModeUnknown = 0;
/*     */   
/*     */ 
/*     */ 
/*     */ 
/* 221 */   int parameterModeIn = 1;
/*     */   
/*     */ 
/*     */ 
/*     */ 
/* 226 */   int parameterModeInOut = 2;
/*     */   
/*     */ 
/*     */ 
/*     */ 
/* 231 */   int parameterModeOut = 4;
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public int getParameterMode(int param)
/*     */     throws SQLException
/*     */   {
/* 248 */     if (Const.TRACE_LEVEL > 0)
/* 249 */       DmdbLog.trace(this, "getParameterMode(int)", "paramIndex = " + 
/* 250 */         param);
/* 251 */     checkIndex(param);
/*     */     
/* 253 */     int jdbcInOutType = 0;
/* 254 */     int dmInOutType = this.m_dbInfo.getParamsInfo()[(param - 1)].getIOType();
/* 255 */     switch (dmInOutType) {
/*     */     case 0: 
/* 257 */       if (this.m_dbInfo.getRetStmtType() == 157) {
/* 258 */         jdbcInOutType = 0;
/*     */       } else {
/* 260 */         jdbcInOutType = 1;
/*     */       }
/* 262 */       break;
/*     */     case 1: 
/* 264 */       jdbcInOutType = 4;
/* 265 */       break;
/*     */     case 2: 
/* 267 */       jdbcInOutType = 2;
/* 268 */       break;
/*     */     }
/*     */     
/*     */     
/*     */ 
/* 273 */     return jdbcInOutType;
/*     */   }
/*     */   
/*     */   void checkIndex(int i) throws SQLException {
/* 277 */     if ((i < 1) || (i > getParameterCount())) {
/* 278 */       DBError.throwSQLException(6032);
/*     */     }
/*     */   }
/*     */ }


/* Location:              D:\Program Files\DBMS_20150813\jdbc\Dm7JdbcDriver17.jar!\dm\jdbc\driver\DmdbParameterMetaData_bs.class
 * Java compiler version: 2 (46.0)
 * JD-Core Version:       0.7.1
 */